// 懒汉式单例
class Singleton {
	private Singleton() { }  // 构造函数私有
	private static Singleton instance = null;  // 用于判断是否被实例化过
	private static object obj = new object();  // 用于线程锁定

    // 全局静态方法，用来从内部实例化
	public static Singleton GetInstance() {
		if (instance == null) {  // 用于判断是否进入线程排队
			lock (obj) {  // 锁定线程
				if (instance == null) {  // 用于判断是否实例化
					instance = new Singleton();
				}
			}
		}
		return instance;
	}
}

// 饿汉式单例模式
class NSingleton {
	private NSingleton() { }  // 构造函数私有，不允许从外部实例化
	public static NSingleton Instance = new NSingleton();  // 应用程序开始时就创建好对象实例，等待调用
}